iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0

機器人作業系統ROS

ROS的英文全名是Robot Operating System(機器人作業系統),起初由Willow Garage實驗室打造,ROS wiki介紹道:「ROS是一個開源(open-source)的meta-operating system,能讓你在正在使用中的作業系統(window、ubuntu)更好的去操縱機器人。」
稍微看了一下meta-operating system的意義,說是介於作業系統與中介軟體(Middleware),又中介軟體是一種能讓不同的應用程式用來彼此進行通訊的軟體,這一層一層的關係是不是有點混亂,我也這麼覺得。總之,就把ROS當作是一個開源的的軟體開發套件,它提供了我們開發機器人所需要的各項工具與函式庫,你不需要為了ROS特別組一台高級電腦,即可以在Linux、Windows 和 macOS以及各種嵌入式平台上使用。
ROS的出現就是為了要提高前人研發機器人領域程式碼的使用率,減少新人開發的時間,避免在開發機器人的路上遇到前人踩過的坑,能更專心地往新的技術發展。
(不過我還是踩了很多奇奇怪怪的坑,看來是我我很不會擅長避雷呢?其實好像我自己的問題居多XD但也趁此機會讓你們見識見識愚蠢的我)

Don’t reinvent the wheel. Create something new and do it faster and better by building on ROS!
拒絕重複造輪子!!!!! 來源:ROS

ROS1

Noeitc Ninjemys
最早的構想從2007年開始,到2020年發布第13個版本「Noeitc Ninjemys」,目前已經不再更新。三年過去了,網路上大部分的package大部分還是ros1的版本,常見的教學也以ros1居多,所以還是稍微提一下。
想看更詳細的介紹可以去看我大大學姐幾年前的鐵人賽ROS自學筆記、他後來也有寫ROS2!

It all started one fall day, November 7th, 2007. That’s when the first commit to ROS was made at Willow Garage by a bunch of enterprising young engineers and researchers. ...
來源:openrobotics

Ros1 擁有「roscore」功能,也就是一定有master node(主節點)來連結其他節點,若是忘記開或是停止,其他節點也會一起停用!

那接下來要講的(我正在使用中)ROS2大大的改善這點。

ROS2

PR2<--PR2 Iron Irwini<--ROS2 Iron Irwini
ROS1原先的設計是為了應用在Willow Garage自家的PR2身上,但隨著時間推移,機器人領域愈發成熟,使用ROS的族群也逐漸擴大、需求改變,而ROS2就這樣被催生了出來。剛提到ROS2的改版是為了改善ROS1現存的問題,這些問題包含:
https://ithelp.ithome.com.tw/upload/images/20230921/201404335XhCzClMIi.png

  1. 中介軟體的部分將TCPROS/UDPROS通訊標準改為DDS(Data Distribution Service),以達到資料被即時發布、訂閱。
  2. roscore功能移除,資訊不用再透過master發布,而是直接發布,避免因master發生錯誤而導致整台機器人無法使用。
  3. 跨平台的支持,原先的ROS1只能在Linux上運行,ROS2增加了對windows與Mac的支持
  4. 支援運行在嵌入式微控制器上的運行、支援多台機器人

還有一些使用上的不同,如編譯系統、Launch支援更多種語法等等,日後會提到~


上一篇
【AMR_Day5】Sensor之函式庫與工具
下一篇
【AMR_Day7】安裝ROS2
系列文
一個營建系學生的韌體之路-自走車篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言